//
//  Adaption.h
//  练习_11.02_1
//
//  Created by rimi1 on 2016/11/2.
//  Copyright © 2016年 Wangxingqian. All rights reserved.
//

#ifndef Adaption_h
#define Adaption_h
#import <UIKit/UIKit.h>

// 模板宽高(iPhone 7)
#define mWIDTH 375
#define mHEIGHT 667
// 定义CustomInline 用static修饰inline，防止重命名冲突(在网上查来的~)
#define CustomInline static inline
/* 
 ! 在外面使用，当使用到相对位置时，得把已转化的，变成未转化，才能避免出错(只是在两个都用适配的情况下，加入view2用系统的 CGRect 就不一样了)
 ! 例如:view1的frame已经调用 WXQRect
 !     view2取view1的x就得这样：CGRectGetMaxX(view1.frame)/WXQWidth()
 !     view2取view1的Y就得这样：CGRectGetMaxY(view1.frame)/WXQHeight()
 !
 ! 原理：view1x = view1x * 宽比例  view1y = view1y * 高比例
 !      view2x = (view1x/宽比例(取没转化之前的x) + 间距) * 宽比例 (这里的view1x是已转化的)
 ! 数字：拿数字说明 比例 = 2 ，x1 = 2；
 !      2(x1没有转化的) * 2 = 4； x1 = 4
 !      如果x2没转化直接用x1的值： (4 + 1(间隔)) * 2 = 10；
 !               转化之后的值是： ((4/2) + 1(间隔)) * 2 = 6；
 !      6才是最后真正的值，因为直接拿转化过的值，想相当于 x1 * 比例 * 比例 乘以了两次比例
 */
// 宽比例
CustomInline CGFloat WXQWidth() {
    // 当前屏幕宽
    CGFloat width = [UIScreen mainScreen].bounds.size.width;
    return width/mWIDTH;
}
// 高比例
CustomInline CGFloat WXQHeight() {
    CGFloat height = [UIScreen mainScreen].bounds.size.height;
    return height/mHEIGHT;
}

// 单个数适配(宽比例)
CustomInline CGFloat WXQAdaptionWidth(CGFloat number) {
    number *= WXQWidth();
    return number;
}
// 单个数适配(高比例)
CustomInline CGFloat WXQAdaptionHeight(CGFloat number) {
    number *= WXQHeight();
    return number;
}

// 高不变
CustomInline CGRect WXQRect(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {
    x *= WXQWidth();
    y *= WXQHeight();
    width *= WXQWidth();
    
    CGRect rect = CGRectMake(x, y, width, height);
    
    return rect;
}
// 高变
CustomInline CGRect WXQRectAll(CGFloat x, CGFloat y, CGFloat width, CGFloat height) {
    x *= WXQWidth();
    y *= WXQHeight();
    width *= WXQWidth();
    height *= WXQHeight();
    
    CGRect rect = CGRectMake(x, y, width, height);
    
    return rect;
}
// 圆(直径随宽比例变)
CustomInline CGRect WXQRoundRect(CGFloat x, CGFloat y, CGFloat diameter) {
    x *= WXQWidth();
    y *= WXQHeight();
    diameter *= WXQWidth();
    
    CGRect rect = CGRectMake(x, y, diameter, diameter);
    
    return rect;
}

// 字体(随宽比例变)
CustomInline UIFont *WXQSystemFont(CGFloat number) {
    return [UIFont systemFontOfSize:number * WXQWidth()];
}
// 粗字体
CustomInline UIFont *WXQBoldSystemFont(CGFloat number) {
    return [UIFont boldSystemFontOfSize:number * WXQWidth()];
}



#endif /* Adaption_h */








